/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package projovem.relatorios.sintesesupervisao;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import javax.persistence.EntityManagerFactory;
import projovem.dao.NucleoDAO;
import projovem.relatorios.sintesesupervisao.vo.CeRotina002SinteseSupervisaoVo;
import projovem.rotinas.CE.R002.CeRotina002;

/**
 *
 * @author admprojovem
 */
public class SinteseSupervisaoCeRotina002 implements Serializable {

    private NucleoDAO nucleoDao = new NucleoDAO();
    private CeRotina002SinteseSupervisaoVo contagem = new CeRotina002SinteseSupervisaoVo();

    public CeRotina002SinteseSupervisaoVo gerarRelatorio(String coordenacaoEscolhida, String entradaEscolhida, String municipioEscolhida, EntityManagerFactory emf) {

        List<CeRotina002> listaCeRotina002 = nucleoDao.obtemNucleosByCoordenacaoAndEntradaAndCeRotina002(coordenacaoEscolhida, entradaEscolhida, municipioEscolhida, emf);
        contagem.setListaCeRotina002(listaCeRotina002);


        for (CeRotina002 rotina : listaCeRotina002) {

            if (rotina.getQ1() != null && rotina.getQ1().equals("fundamental")) {
                contagem.setQ1a(contagem.getQ1a() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ1() != null && rotina.getQ1().equals("medio/tecnico")) {
                contagem.setQ1b(contagem.getQ1b() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ1() != null && rotina.getQ1().equals("medio/magisterio")) {
                contagem.setQ1c(contagem.getQ1c() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ1() != null && rotina.getQ1().equals("superiorIncompleto")) {
                contagem.setQ1d(contagem.getQ1d() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ1() != null && rotina.getQ1().equals("Mestrado")) {
                contagem.setQ1i(contagem.getQ1i() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }
            if (rotina.getQ1() != null && rotina.getQ1().equals("Doutorado")) {
                contagem.setQ1j(contagem.getQ1j() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }

            if (rotina.getQ8a() != null && rotina.getQ8a().equals("Nao")) {
                contagem.setQ8anao(contagem.getQ8anao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ8b() != null && rotina.getQ8b().equals("Nao")) {
                contagem.setQ8bnao(contagem.getQ8bnao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ8c() != null && rotina.getQ8c().equals("Nao")) {
                contagem.setQ8cnao(contagem.getQ8cnao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ8d() != null && rotina.getQ8d().equals("Nao")) {
                contagem.setQ8dnao(contagem.getQ8dnao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ8e() != null && rotina.getQ8e().equals("Nao")) {
                contagem.setQ8enao(contagem.getQ8enao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ8f() != null && rotina.getQ8f().equals("Nao")) {
                contagem.setQ8fnao(contagem.getQ8fnao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ9SoftwaresTexto() != null && rotina.getQ9SoftwaresTexto().equals("naoSei")) {
                contagem.setQ9aa(contagem.getQ9aa() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ9SoftwaresTexto() != null && rotina.getQ9SoftwaresTexto().equals("avancado")) {
                contagem.setQ9ac(contagem.getQ9ac() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }

            if (rotina.getQ9ConfeccaoPlanilhas() != null && rotina.getQ9ConfeccaoPlanilhas().equals("naoSei")) {
                contagem.setQ9ba(contagem.getQ9ba() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ9ConfeccaoPlanilhas() != null && rotina.getQ9ConfeccaoPlanilhas().equals("avancado")) {
                contagem.setQ9bc(contagem.getQ9bc() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }

            if (rotina.getQ9Internet() != null && rotina.getQ9Internet().equals("naoSei")) {
                contagem.setQ9ca(contagem.getQ9ca() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ9Internet() != null && rotina.getQ9Internet().equals("avancado")) {
                contagem.setQ9cc(contagem.getQ9cc() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }

            if (rotina.getQ10() != null && rotina.getQ10().equals("parcialmente")) {
                contagem.setQ10parcialmente(contagem.getQ10parcialmente() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ10() != null && rotina.getQ10().equals("nao")) {
                contagem.setQ10nao(contagem.getQ10nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            
            if (rotina.getQ12() != null && rotina.getQ12().equals("menor96horas")) {
                contagem.setQ12menor(contagem.getQ12menor() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ12() != null && rotina.getQ12().equals("maior96horas")) {
                contagem.setQ12maior(contagem.getQ12maior() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }

            if (rotina.getQ13() != null && rotina.getQ13().equals("nao")) {
                contagem.setQ13nao(contagem.getQ13nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ14() != null && rotina.getQ14().equals("nao")) {
                contagem.setQ14nao(contagem.getQ14nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ15() != null && rotina.getQ15().equals("nao")) {
                contagem.setQ15nao(contagem.getQ15nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (rotina.getQ19() != null && rotina.getQ19().equals("nao")) {
                contagem.setQ19nao(contagem.getQ19nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
        }

        Integer totalElementos = listaCeRotina002.size();

        if (contagem.getQ1a() != null && contagem.getQ1a() != 0) {
            contagem.setQ1a((contagem.getQ1a() * 100) / totalElementos);
        }
        if (contagem.getQ1b() != null && contagem.getQ1b() != 0) {
            contagem.setQ1b((contagem.getQ1b() * 100) / totalElementos);
        }
        if (contagem.getQ1c() != null && contagem.getQ1c() != 0) {
            contagem.setQ1c((contagem.getQ1c() * 100) / totalElementos);
        }
        if (contagem.getQ1d() != null && contagem.getQ1d() != 0) {
            contagem.setQ1d((contagem.getQ1d() * 100) / totalElementos);
        }
        if (contagem.getQ1i() != null && contagem.getQ1i() != 0) {
            contagem.setQ1i((contagem.getQ1i() * 100) / totalElementos);
        }
        if (contagem.getQ1j() != null && contagem.getQ1j() != 0) {
            contagem.setQ1j((contagem.getQ1j() * 100) / totalElementos);
        }

        if (contagem.getQ8anao() != null && contagem.getQ8anao() != 0) {
            contagem.setQ8anao((contagem.getQ8anao() * 100) / totalElementos);
        }
        if (contagem.getQ8bnao() != null && contagem.getQ8bnao() != 0) {
            contagem.setQ8bnao((contagem.getQ8bnao() * 100) / totalElementos);
        }
        if (contagem.getQ8cnao() != null && contagem.getQ8cnao() != 0) {
            contagem.setQ8cnao((contagem.getQ8cnao() * 100) / totalElementos);
        }
        if (contagem.getQ8dnao() != null && contagem.getQ8dnao() != 0) {
            contagem.setQ8dnao((contagem.getQ8dnao() * 100) / totalElementos);
        }
        if (contagem.getQ8enao() != null && contagem.getQ8enao() != 0) {
            contagem.setQ8enao((contagem.getQ8enao() * 100) / totalElementos);
        }
        if (contagem.getQ8fnao() != null && contagem.getQ8fnao() != 0) {
            contagem.setQ8fnao((contagem.getQ8fnao() * 100) / totalElementos);
        }

        if (contagem.getQ9aa() != null && contagem.getQ9aa() != 0) {
            contagem.setQ9aa((contagem.getQ9aa() * 100) / totalElementos);
        }
        if (contagem.getQ9ac() != null && contagem.getQ9ac() != 0) {
            contagem.setQ9ac((contagem.getQ9ac() * 100) / totalElementos);
        }

        if (contagem.getQ9ba() != null && contagem.getQ9ba() != 0) {
            contagem.setQ9ba((contagem.getQ9ba() * 100) / totalElementos);
        }
        if (contagem.getQ9bc() != null && contagem.getQ9bc() != 0) {
            contagem.setQ9bc((contagem.getQ9bc() * 100) / totalElementos);
        }

        if (contagem.getQ9ca() != null && contagem.getQ9ca() != 0) {
            contagem.setQ9ca((contagem.getQ9ca() * 100) / totalElementos);
        }
        if (contagem.getQ9cc() != null && contagem.getQ9cc() != 0) {
            contagem.setQ9cc((contagem.getQ9cc() * 100) / totalElementos);
        }

        if (contagem.getQ10parcialmente() != null && contagem.getQ10parcialmente() != 0) {
            contagem.setQ10parcialmente((contagem.getQ10parcialmente() * 100) / totalElementos);
        }
        if (contagem.getQ10nao() != null && contagem.getQ10nao() != 0) {
            contagem.setQ10nao((contagem.getQ10nao() * 100) / totalElementos);
        }
        
        if (contagem.getQ12menor() != null && contagem.getQ12menor() != 0) {
            contagem.setQ12menor((contagem.getQ12menor() * 100) / totalElementos);
        }
        if (contagem.getQ12maior() != null && contagem.getQ12maior() != 0) {
            contagem.setQ12maior((contagem.getQ12maior() * 100) / totalElementos);
        }
        
        if (contagem.getQ13nao() != null && contagem.getQ13nao() != 0) {
            contagem.setQ13nao((contagem.getQ13nao() * 100) / totalElementos);
        }
        if (contagem.getQ14nao() != null && contagem.getQ14nao() != 0) {
            contagem.setQ14nao((contagem.getQ14nao() * 100) / totalElementos);
        }
        if (contagem.getQ15nao() != null && contagem.getQ15nao() != 0) {
            contagem.setQ15nao((contagem.getQ15nao() * 100) / totalElementos);
        }
        if (contagem.getQ19nao() != null && contagem.getQ19nao() != 0) {
            contagem.setQ19nao((contagem.getQ19nao() * 100) / totalElementos);
        }

        Locale locale = new Locale("pt", "BR");
        GregorianCalendar calendar = new GregorianCalendar();
        SimpleDateFormat formatador = new SimpleDateFormat("dd' de 'MMMMM' de 'yyyy' - 'HH':'mm'h'", locale);
        contagem.setDataatual(formatador.format(calendar.getTime()));
        System.out.println(formatador.format(calendar.getTime()));
        return contagem;
    }
}
